<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <cpn></cpn>
        <!-- 当对子组件默认提供的数据排列方式不满意时,需要进行更改,此时需要取到子组件的数据 -->
        <!-- 父组件替换插槽的标签,但是内容由子组件来提供 -->
        <!-- 根据作用域概念,无法直接在父组件中取到子组件的数据 -->
        <!-- 获取子组件中的 pLanguages -->
        <cpn>
            <!-- 高版本Vue不要求一定要使用template标签 -->
            <!-- slot-scope属性是固定的,后跟的值为自定义的,代表了绑定的插槽对象 -->
            <template slot-scope="slot">
                <!-- <span v-for="item in slot.data">{{item}} -</span> -->
                <span>{{slot.abc.join(' - ')}}</span>
            </template>
        </cpn>
        <cpn></cpn>
    </div>

    <template id="cpn">
        <div>
            <!-- 添加属性绑定pLanguages,属性名是自定义的,不一定要求是 :data -->
            <slot :abc="pLanguages">
                <ul>
                    <li v-for="item in pLanguages">{{item}}</li>
                </ul>
            </slot>
        </div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '苏州大学'
            },
            components: {
                cpn: {
                    template: '#cpn',
                    data(){
                        return{
                            pLanguages: ['JavaScript','C++','Java','C#','Python','Go','Swift']
                        }
                    }
                }
            }
        })
    </script>
</body>
</html>